OBJ = main.o game.o kbc.o kbd_isr.o ints.o sprite.o video-graphics.o rtc.o timer.o queue.o music.o gqueue.o

all: arkanoid.exe

arkanoid.exe: $(OBJ)
	gcc -Wall $(OBJ) -o arkanoid.exe

main.o: main.c game.h rtc.h video-graphics.h
	gcc -Wall -c -g main.c

game.o: game.c game.h utypes.h kbc.h ints.h pixmap.h local_table.h queue.h
	gcc -Wall -c -g game.c

queue.o: queue.h queue.c utypes.h
	gcc -Wall -c -g queue.c
	
gqueue.o: gqueue.h gqueue.c utypes.h
	gcc -Wall -c -g gqueue.c
	
kbc.o: kbc.c kbc.h
	gcc -Wall -c -g kbc.c
	
music.o: music.c music.h timer.h utypes.h
	gcc -Wall -c -g music.c
	
timer.o: timer.c timer.h
	gcc -Wall -c -g timer.c
	
rtc.o: rtc.c rtc.h ints.h utypes.h music.h timer.h
	gcc -Wall -c -g rtc.c
	
kbd_isr.o: kbd_isr.asm
	nasm -t -f coff kbd_isr.asm -o kbd_isr.o

ints.o: ints.c ints.h
	gcc -Wall -c -g ints.c

sprite.o: sprite.c sprite.h video-graphics.h utypes.h
	gcc -Wall -c -g sprite.c
	
video-graphics.o: video-graphics.c video-graphics.h
	gcc -Wall -c -g video-graphics.c
	
clean:
	rm -f *.o arkanoid.exe